/*
window.onload = function(){
	//window.scrollTo(0, 0);
}
setTimeout("datahoraF()", 1);
setInterval("datahoraF()", 1000);
var dia = [ "Domingo", "Segunda-Feira", "Terça-Feira", "Quarta-Feira",
		"Quinta-Feira", "Sexta-Feira", "Sábado" ];
var mes = [ "Janeiro", "Feveiro", "Março", "Abril", "Maio", "Junho", "Julho",
		"Agosto", "Setembro", "Outubro", "Novembro", "Dezembro" ];

function datahoraF() {
	var date = new Date();
	if(document.getElementById("dataHora")!= null){
		document.getElementById("dataHora").innerHTML = dia[date.getDay()] + ", "
				+ date.getDate() + " de " + mes[date.getMonth()] + " de "
				+ date.getFullYear() + " - " + zeros(date.getHours()) + ":"
				+ zeros(date.getMinutes()) + ":" + zeros(date.getSeconds());
	}
}
*/

function zeros(valor) {
	if (valor < 10) {
		return "0" + valor;
	}
	return valor;
}

// ########### MASCARAS CAMPOS ###########
function MascaraMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e) {
	var key = '';
	var i = j = 0;
	var len = len2 = 0;
	var strCheck = '0123456789';
	var aux = aux2 = '';
	var whichCode = (window.event) ? e.which : e.keyCode;
	if (whichCode == 13) {
		return true;
	}
	if (whichCode == 8) {
		return true;
	}
	if (whichCode == 0) {
		return true;
	}
	key = String.fromCharCode(whichCode); // Valor para o código da Chave
	if (strCheck.indexOf(key) == -1) {
		return false; // Chave inválida
	}
	len = objTextBox.value.length;
	for (i = 0; i < len; i++) {
		if ((objTextBox.value.charAt(i) != '0')
				&& (objTextBox.value.charAt(i) != SeparadorDecimal)) {
			break;
		}
	}
	aux = '';
	for (; i < len; i++) {
		if (strCheck.indexOf(objTextBox.value.charAt(i)) != -1) {
			aux += objTextBox.value.charAt(i);
		}
	}
	aux += key;
	len = aux.length;
	if (len == 0) {
		objTextBox.value = '';
	}
	if (len == 1) {
		objTextBox.value = '0' + SeparadorDecimal + '0' + aux;
	}
	if (len == 2) {
		objTextBox.value = '0' + SeparadorDecimal + aux;
	}
	if (len > 2) {
		aux2 = '';
		for (j = 0, i = len - 3; i >= 0; i--) {
			if (j == 3) {
				aux2 += SeparadorMilesimo;
				j = 0;
			}
			aux2 += aux.charAt(i);
			j++;
		}
		objTextBox.value = '';
		len2 = aux2.length;
		for (i = len2 - 1; i >= 0; i--) {
			objTextBox.value += aux2.charAt(i);
		}
		objTextBox.value += SeparadorDecimal + aux.substring(len - 2, len);
	}
	return false;
}

/*
* função para permitir a digitação de números decimais e inteiros
*/
function ForceNumericInput(event, This, AllowDecimal, AllowMinus) {
	if(arguments.length == 1){
		var s = This.value;
		// garante que o sinal de "-" seja o primeiro do índice
		var i = s.lastIndexOf("-");
		if(i == -1)
			return;
		if(i != 0)
			This.value = s.substring(0,i)+s.substring(i+1);
		return;
	}
	switch(event.keyCode){
		case 8:     // backspace
		case 9:     // tab
		case 37:    // left arrow
		case 39:    // right arrow
		case 46:    // delete
		event.returnValue = true;
		return;
	}
	if(event.keyCode == 189)     // sinal de numero de negativo
	{
		if(AllowMinus == false)
			{
				CancelEventExecution(event);
				return;
			}
		// aguarda até que o controle tenha sido atualizado
		var s = "ForceNumericInput(document.getElementById('"+This.id+"'))";
		setTimeout(s, 250);
		return;
	}
	if(AllowDecimal && event.keyCode == 188){
		if(This.value.indexOf(",") >= 0){
			// 	restringe a digitação de apenas uma vírgula
			CancelEventExecution(event);
			return;
		}
		event.returnValue = true;
		return;
	}
	//  permite caracteres entre 0 e 9
	if(event.keyCode >= 48 && event.keyCode <= 57){
		event.returnValue = true;
		return;
	}
		CancelEventExecution(event);
	}
	/*
* Cancela a execusão de uma function mapeada por um evento
	*/
	function CancelEventExecution(event){
		if (navigator.appName == "Netscape"){
			event.preventDefault();
		}else{
			event.returnValue = false;
		}
	}


	function IsNum(obj,event){
	    var Tecla = event.charCode;
	    var ie = event.keyCode;
	    if (!event) event = window.event;
	    var code;
	    if (event.keyCode) code = event.keyCode;
	    else if (event.which) code = event.which; 
	    // Netscape 4.?
	    // se nao for número nem parentesis ou espaço
	    if (code < 48 || code > 59 ){
	      event.returnValue = false;
	      if (event.which){
	        event.preventDefault();
	      }
	      return false;
	    }else{
	      event.returnValue = true;
	      return true;
    }
  }



/*Função Pai de Mascaras*/
function mascara(o,f){
    v_obj=o;v_fun=f;
    setTimeout("execmascara()",1);
}
function execmascara(){v_obj.value=v_fun(v_obj.value);}

//onkeyup="mascara(this,sonumero);"
function sonumero(valor){return valor.replace(/\D/g,"");}

//onkeyup="mascara(this,data);"
function data(valor){	
	valor=valor.replace(/\D/g,"");
	valor=valor.replace(/(\d{2})(\d)/,"$1/$2");
	valor=valor.replace(/(\d{2})(\d)/,"$1/$2");
    return valor;
}

//onkeyup="mascara(this,processo);"
function processo(nuProcesso){	
	valor=valor.replace(/\D/g,"");
	valor=valor.replace(/(\d{4})( d)/,"$1/$2");
    return valor;
}

//onkeyup="mascara(this,hora);"
function hora(valor){
	valor=valor.replace(/\D/g,"");
	valor=valor.replace(/(\d{2})(\d)/,"$1:$2");
	valor=valor.replace(/(\d{2})(\d)/,"$1:$2");
	valor=valor.replace(/(\d{2})(\d)/,"$1:$2");
    return valor;
}

//onkeyup="mascara(this,cpf);"
function cpf(valor){
	valor=valor.replace(/\D/g,"");
	valor=valor.replace(/(\d{3})(\d)/,"$1.$2");
	valor=valor.replace(/(\d{3})(\d)/,"$1.$2");
	valor=valor.replace(/(\d{3})(\d{1,2})$/,"$1-$2");
    return valor;
}

//onkeyup="mascara(this,cnpj);"
function cnpj(valor){
	valor=valor.replace(/\D/g,"");
	valor=valor.replace(/^(\d{2})(\d)/,"$1.$2");
	valor=valor.replace(/^(\d{2})\.(\d{3})(\d)/,"$1.$2.$3");
	valor=valor.replace(/\.(\d{3})(\d)/,".$1/$2");
	valor=valor.replace(/(\d{4})(\d)/,"$1-$2");
    return valor;
}

//onkeyup="mascara(this,telefone);"
function Mascara(objeto){
	   if(objeto.value.length == 0)
	     objeto.value = '(' + objeto.value;

	   if(objeto.value.length == 3)
	      objeto.value = objeto.value + ')';

	 if(objeto.value.length == 8)
	     objeto.value = objeto.value + '-';
}

//onkeyup="mascara(this,moeda);"
function moeda(valor){
	valor=valor.replace(/\D/g,""); //permite digitar apenas números
	valor=valor.replace(/[0-9]{12}/,"inválido");  //limita pra máximo 999.999.999,99
	valor=valor.replace(/(\d{1})(\d{8})$/,"$1.$2"); //coloca ponto antes dos últimos 8 digitos
	valor=valor.replace(/(\d{1})(\d{5})$/,"$1.$2"); //coloca ponto antes dos últimos 5 digitos
	valor=valor.replace(/(\d{1})(\d{1,2})$/,"$1,$2"); //coloca virgula antes dos últimos 2 digitos
	return valor;
}


//onkeyup="mascara(this,percentual);"
function percentual(valor){
	valor=valor.replace(/\D/g,"");
	valor=valor.replace(/(\d)(\d{2})$/,"$1,$2");
	//valor=valor.replace(/(\d{3})(\d)/,"$1,$2");
	return valor;
}

//onkeyup="mascara(this,nuLeilao);"
function nuLeilao(valor){
	valor=valor.replace(/\D/g,"");
	valor=valor.replace(/(\d)(\d{4})$/,"$1/$2");
	return valor;
}


//onkeyup="mascara(this,contrato);"
function contrato(valor){
	valor=valor.replace(/\D/g,"");
	valor=valor.replace(/(\d{4})(\d)/,"$1.$2");
	valor=valor.replace(/(\d{3})(\d{3})/,"$1.$2");
	valor=valor.replace(/(\d{1})(\d{1,1})$/,"$1-$2");
    return valor;
}

//onkeyup="mascara(this,somenteLetras);"
function somenteLetras(valor){
	valor = valor.replace(/([0-9])/g, "");
	return valor;
}


// ################## VALIDACOES PARA CAMPOS ##################
function anobissexto(ano) {
	/* Validando ano Bissexto / fevereiro / dia */
	if ((ano % 4 == 0) || (ano % 100 == 0) || (ano % 400 == 0)) {
		return true;
	}
	return false;
}

function detalhar(contexto){
	  if(confirm("Deseja exibir a Carta de Contestação?")){	
	     window.open(contexto + '/WEB-INF/modelos/Carta_Contestacao.pdf');
	  }
}

function validaData(objeto) {
	var valor = objeto.value;
	var mValores = "312831303130313130313031";
	var retorno = false;
	var lastDate = 0;
	var data_atual = new Date();
	// alert(data_atual.getDate() + "/" + data_atual.getMonth() + "/" +
	// data_atual.getFullYear());

	if (valor == "") {
		return true;
	}
	if (valor.length < 10) {
		retorno = false;
	}
	if (valor.substr(6, 4) < 1000) {
		alert("Data incorreta! O Formato deve ser DD/MM/AAAA");
		objeto.select();
		objeto.focus();
		return false;
	} else if (valor.substr(6, 4) < 1900) {
		alert("A data do sistema deve ser maior que 1900.");
		objeto.focus();
		objeto.select();
		return false;
	}

	dia = parseInt(valor.substring(0, 2), 10); // dia
	mes = parseInt(valor.substring(3, 5), 10); // mes
	ano = parseInt(valor.substring(6, 10), 10); // ano
	alert(ano + ">" + data_atual.getFullYear());
	if (ano > data_atual.getFullYear()) {
		alert("Data incorreta!");
		objeto.focus();
		objeto.select();
		return false;
	} else if (ano == data_atual.getFullYear()) {
		if (mes > (data_atual.getMonth() + 1)) {
			alert("Data incorreta!");
			objeto.focus();
			objeto.select();
			return false;
		} else if (dia > data_atual.getDate()) {
			alert("Data incorreta!");
			objeto.focus();
			objeto.select();
			return false;
		}
	}
	if (mes == 2) {
		if (anobissexto(ano)) {
			lastDate = 29;
		} else {
			lastDate = 28;
		}
	} else {
		lastDate = mValores.substring((mes - 1) * 2, (mes - 1) * 2 + 2);
	}
	if (valor.length < 8) {
		retorno = false;
	} else if (valor.substring(2, 3) != "/") {
		retorno = false;
	} else if (valor.substring(5, 6) != "/") {
		retorno = false;
	} else if ((isNaN(dia)) || (isNaN(mes)) || (isNaN(ano))) {
		retorno = false;
	} else if ((mes > 12) || (mes <= 0)) {
		retorno = false;
	} else if ((dia > lastDate) || (dia <= 0)) {
		retorno = false;
	} else if (valor.substring(6, 10) < 4) {
		retorno = false;
	} else {
		retorno = true;
	}
	if (!retorno) {
		alert("Data incorreta!");
		objeto.focus();
		objeto.select();
	}
	return retorno;
}

function escondeTodas() {
	var itens = document.getElementById('submenu').getElementsByTagName('ul');
	var classes = document.getElementById('menu').getElementsByTagName('li');
	for (var x = 0; x < itens.length; x++){
		itens[x].style.display = "none";
		classes[x].className = "inativo";
	}
}

function abreMenu(qualItem,alteraClasse) {
	if (document.getElementById(qualItem).style.display == 'block') {
		document.getElementById(alteraClasse).className = "inativo";
		document.getElementById(qualItem).style.display = 'none';
	} else {
		escondeTodas();
		document.getElementById(alteraClasse).className = "ativo";
		document.getElementById(qualItem).style.display = 'block';
	}
}

//Opção Resposta, tela do caso de Uso Questionario do Esclarecimento
function opcaoResposta(object){
	var index = object.selectedIndex;
	var valor = object.options[index].value;
	if(valor == 'Outras'){		
		document.getElementById("form:divOpcaoResposta").style.display = 'block';		
	}else {
		document.getElementById("form:divOpcaoResposta").style.display = 'none';
	}
}

function validarConfirmacao(){
	if (confirm("As alterações efetuadas não serão salvas. Confirma?")){
		document.getElementById("form:opcaoResposta").value = 'CONFIRMAR';
	}else{
		document.getElementById("form:opcaoResposta").value = 'CANCELAR';
	} 
}

function apresentarContaAcerto(object){
	var index = object.selectedIndex;
	var valor = object.options[index].value;
	if(valor == 'SIM'){		
		document.getElementById("form:viewContaAcerto").style.display = 'block';		
	}else {
		document.getElementById("form:viewContaAcerto").style.display = 'none';
	}
}

//Utilizado nas datatables com selectone.
function dataTableSelectOneRadio(radio){	
	var id = radio.name.substring(radio.name.lastIndexOf(':'));
	var el = radio.form.elements;
	for (var i = 0; i < el.length; i++) {
		if (el[i].name!= null){
	        if (el[i].name.substring(el[i].name.lastIndexOf(':')) == id) {
	            el[i].checked = false;
	        }
	    }
	}
	radio.checked = true;
}

function excluir(object){
	var answer = confirm("Leave tizag.com?");
	if (answer){
		alert("Bye bye!");
		window.location = "http://www.google.com/";
	}
	else{
		alert("Thanks for sticking around!");
	}
}

//Validação de senha e login

function validaLogin() {
	var tamanho = document.forms[0].j_username.value.length;
	var flag = false;
	if (tamanho == 0)
		flag = true;
	for ( var i = 0; i < tamanho; i++) {
		var caracter = document.forms[0].j_username.value.substring(i,i + 1);

		if ((caracter >= 0 && caracter <= 9)|| (caracter == 'w' || caracter == 'W')||(caracter == 'c' || caracter == 'C')|| (caracter == 'p' || caracter == 'P')||(caracter == 'x' || caracter == 'X')||(caracter == 'f' || caracter == 'F')) {
		} else {
			flag = true;
			break;
		}
	}

	if (flag == false) {
		document.forms[0].submit();
	} else {
		document.forms[0].j_username.value = '';
		document.forms[0].j_password.value = '';
		document.forms[0].j_username.focus();
		alert('Acesso permitido somente a empregado Caixa ou Prestador!');
	}
}

function submeter() {
	if (event.keyCode == 13) {
		event.keyCode = 0;
		validaLogin();
	}
}

function setFocus(id) {
	document.getElementById(id).focus();
}
//window.scrollTo(0, 0);
function focus(id){	
	if(id != null && id != ""){
		document.getElementById(id).style.backgroundColor = '#ffffee';
		document.getElementById(id).style.border = '1px solid #FF0000';		
	}
}


//f = número de casas decimais
//d = separador de decimos (, virgula por padrão)
//t = separador de milhar (. ponto por padrão)
//Exemplos:
//<input type="text" onkeyup="this.value = this.value.currencyFormat()" />
//<input type="text" onkeyup="this.value = this.value.currencyFormat(3)" />
//<input type="text" onkeyup="this.value = this.value.currencyFormat(3, ',', '.')" />
String.prototype.currencyFormat = function (f, d, t) {
	var n = (n = this.match(/\d/g)) ? n.join('').replace(/^0+/,'') : '0', f = (f) ? f : 2, d = (d) ? d : ',', t = (t) ? t : '.';
	if (n.length < f + 1) 
		return '0' + d + ((n.length < f) ? new Array(f - n.length + 1).join('0') + n : n);
	else 
		return n.substr(0, n.length - f).split('').reverse().join('').match(/\d{1,3}/g).join(t).split('').reverse().join('') + d + n.substr(n.length - f);
}

/**
 * Função Replace que substitui todas as ocorréncias de um determinado 
 * caracter/conjunto de caracteres, por algum outro caracter/conjunto de caracteres.
 * @author Desconhecido.
 */
function xreplace(variavel, aSerSubstituido, substituirPor){
	var temp = variavel;
	var i = temp.indexOf(aSerSubstituido);
	while(i > -1) {
		temp = temp.replace(aSerSubstituido, substituirPor);
		i = temp.indexOf(aSerSubstituido, i + substituirPor.length + 1);
	}
	return temp;
}

function isArray(o){
	return(typeof(o.length)=="undefined")?false:true;
}


function bloquearCampos(idCampos) {
	if (idCampos == null || ! isArray(idCampos))
		return ;
	for (i = 0; i < idCampos.length; i++) {
		try {
			document.getElementById(idCampos[i]).readOnly = true;
			document.getElementById(idCampos[i]).readOnly = true;
		} catch(e) {  }
	}
}


/**
 * Função responsável por verificar se o browser do cliente é da Microsoft, ou seja, se é o Internet Explorer.
 * Essa Função é utilizada por outras, quando se faz necesSário diferenciar o navegador utilizado, dada a limitação de funções JS suportadas pelo IE.
 * 
 * @return boolean.
 * @author Daniel Melo Sá.
 */
function isBrowserInternetExplorer() {
	if (navigator.appName.indexOf('Microsoft') != -1) {
		return true;
	}
	return false;
}

/**
 * Função responsável por ocultar um componente HTML.
 * Esta Função altera o atributo DISPLAY, da propriedade STYLE do componente passado, para "none".
 * 
 * @param idComponente - ID do componente que deseja ocultar.
 * @return void.
 * @author Daniel Melo Sá.
 */
function ocultarComponente(idComponente) {
	if (idComponente != null && idComponente.length > 0 && document.getElementById(idComponente) != null) {
		setDisplay(idComponente, "none");
	}
}

/**
 * Função responsável por mostrar um componente HTML.
 * Esta Função altera o atributo DISPLAY, da propriedade STYLE do componente passado, para "row" ou para "inline" (no caso de o navegador ser IE).
 * 
 * @param idComponente - ID do componente que deseja mostrar.
 * @return void.
 * @author Daniel Melo Sá.
 */
function mostrarComponente(idComponente) {
	if (idComponente != null && idComponente.length > 0 && document.getElementById(idComponente) != null) {
		if (isBrowserInternetExplorer()) {
			setDisplay(idComponente, "inline");
		} else {
			setDisplay(idComponente, "row");
		}
	}
}

function isComponenteOculto(idComponente) {
	return getDisplay(idComponente) != null && getDisplay(idComponente).indexOf("none") != -1;
}


function mostrarOcultarComponente(idComponenteAlvo, idBotaoMostrar, idBotaoOcultar) {
	var isExpandirComponenteAlvo = isComponenteOculto(idComponenteAlvo);
	if (isExpandirComponenteAlvo) {
		mostrarComponente(idComponenteAlvo);
		ocultarComponente(idBotaoMostrar);
		mostrarComponente(idBotaoOcultar);
	} else {
		ocultarComponente(idComponenteAlvo);
		ocultarComponente(idBotaoOcultar);
		mostrarComponente(idBotaoMostrar);
	}
}


/**
 * Função que altera a propriedade style.display de um componente HTML.
 * 
 * @param idComponente - ID do componente que deseja alterar a propriedade Display.
 * @param display - Nome do Display a definir.
 * @return void.
 * @author Daniel Melo Sá.
 */
function setDisplay(idComponente, display) {
	if (isBrowserInternetExplorer()) {
		document.getElementById(idComponente).style.display = display;
	} else {
		document.getElementById(idComponente).setAttribute("style", "display: " + display + ";");
	}
}

/**
 * Função que retorna a propriedade style.display de um componente HTML.
 * 
 * @param idComponente - ID do componente que deseja capturar o display.
 * @return string.
 * @author Daniel Melo Sá.
 */
function getDisplay(idComponente) {
	if (isBrowserInternetExplorer()) {
		return document.getElementById(idComponente).style.display;
	} else {
		return document.getElementById(idComponente).getAttribute("style");
	}
}

/**
 * Função que retorna o valor do Radiobutton selecionado.
 * @param Radiobutton (objeto).
 * @return string.
 * @author http://www.somacon.com/p143.php.
 */
function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}


/**
 * Verifica a quantidade de Registros selecionados em uma DataTable.
 * 
 * Este método serve para limitar a quantidade mínima e/ou máxima de registros a serem selecionados em uma data table.
 * A seleção será controlada por meio de um checkbox adicionado linha-a-linha, conforme exemplo da tela:
 *	/jsp/registroContestacao/selecionarContaDoCliente.jsp.
 * 
 * Os dois últimos parametros não Sao obrigatórios.
 * E os valores padrões Sáo, respectivamente, 1 e 1.
 * 
 * @param idTabela - Id da Data Table que contém os checkbox. Ex: "form:tabela_contas_cliente"
 * @param idCheckbox - Id da Checkbox. 
 * @param numMinimoSelecionados - A quantidade mínima de registros que devem ser selecionados pelo usuário. Default = 1.
 * @param numMaximoSelecionados - A quantidade máxima de registros que podem ser selecionados pelo usuário. Default = 1.
 * @return "true" ou "false". Caso o retorno seja false, ou seja, com falha na validação, uma mensagem á mostrada ao usuário.
 */
function verificarSelecaoRegistrosDataTable(idTabela, idCheckbox, numMinimoSelecionados, numMaximoSelecionados) {
	numMinimoSelecionados = numMinimoSelecionados | 1;
	numMaximoSelecionados = numMaximoSelecionados | 1;
	var countSelecionados = 0;
	for ( var count = 0; count < 9999999999; count++) {
		var checkbox = document.getElementById(idTabela + ":" + count + ":" + idCheckbox);
		if (checkbox == null) {
			break;
		} else {
			if (checkbox.checked || checkbox.checked == 1) {
				countSelecionados++;
			}
		}
	}
	if (countSelecionados >= numMinimoSelecionados && countSelecionados <= numMaximoSelecionados) {
		return true;
	} else {
		if (countSelecionados < numMinimoSelecionados) {
			var plural = (numMinimoSelecionados == 1)? "" : "s";
			alert("Você deve selecionar ao menos " + numMinimoSelecionados + " registro" + plural + " na tabela para realizar esta operação.");
		} else if (countSelecionados > numMaximoSelecionados) {
			var plural = (numMaximoSelecionados == 1)? "" : "s";
			alert("Você deve selecionar no máximo " + numMinimoSelecionados + " registro" + plural + " na tabela para realizar esta operação.");
		}
		return false;
	}
}


function submitForm() {
	document.forms[0].submit();	
}



/**
 * Retorna o valor da Opção Selecionada em uma Combo. 
 */
function getOpcaoSelecionada( campoSelect ) {
	if ( campoSelect != null && campoSelect != 'undefined') {
		if ( campoSelect.value != null && campoSelect.value != 'undefined') {
			return campoSelect.value;
		} else {
			for ( var option in campoSelect.options) {
				if ( option.selected )
					return option.value;
			}
		}
	} 
	return null;
}

function formataQualquerTipoMascaraDireita(campo, mask, evt) {

	vCampo = campo.value; //vCampo: valor do campo.
	tCampo = vCampo.length; //tCampo: tamanho do campo.
	tMask = mask.length; //tMask: tamanho da mascara.    
	vFinal = ""; //vFinal: return da Função.    
	tecla = evt.keyCode; //Codigo da tecla digitada pelo usuario
	cont = 0;

	//Verificando se foi pressionado Ctrl+c ou Ctrl+v, permitindo seus efeitos.

	//Para permitir que a máscara seja aplicada sobre o texto colado, é chamada
	//a Função completaMascara após a execucão desta Função, através da Função
	//javascript nativa "setTimeout".
	if ((evt.ctrlKey && tecla == 67) || (evt.ctrlKey && tecla == 86)) {
		setTimeout("completaMascara(document.getElementById(\'" + campo.id
				+ "\'),\'" + mask + "\')", 100);
	}

	// Teclas Insert, Del, Page UP, Page Down, Home, End, setas de movimentaáo, Shift, Ctrl e Tab, Enter
	if (tecla == 8 || tecla == 37 || tecla == 38 || tecla == 39 || tecla == 40
			|| tecla == 46 || tecla == 36 || tecla == 35 || tecla == 33
			|| tecla == 34 || tecla == 45 || tecla == 16 || tecla == 17
			|| tecla == 9 || tecla == 13) {
		return;
	}
	for (i = 0; i < tCampo; i++) {
		vCampo = vCampo.replace("-", "");
		vCampo = vCampo.replace(".", "");
		vCampo = vCampo.replace("/", "");
		vCampo = vCampo.replace(":", "");
		vCampo = vCampo.replace(" ", "");
		vCampo = vCampo.replace(",", "");
	}

	for (i = 0; i < tMask; i++) {
		if (mask.charAt(i) == "9") {
			cont++;
		}
	}

	tCampo = vCampo.length;
	if (tCampo >= cont) {
		return false;
	}

	pMask = tMask - 1;

	for (i = 0; i < tCampo; i++) {
		pMask--;
		while (mask.charAt(pMask) != "9") {
			pMask--;
		}
	}

	cont = 0;
	for (i = pMask; i < tMask; i++) {
		if (mask.charAt(i) == "9") {
			vFinal = vFinal + vCampo.charAt(cont);
			cont++;
		} else {
			vFinal = vFinal + mask.charAt(i);
		}
	}
	campo.value = "";
	campo.value = vFinal;
	return true;
}

function validaDigito(e) {
	var controle = false;

	// Pega o valor ASCII da tecla que o usuário pressionou   
	if (window.event) { //Internet Explorer
		tecla = e.keyCode;
	} else { //Demais browsers
		tecla = e.which;
	}

	// Permite a digitação das seguintes teclas: Backspace, Insert, Del, Page UP, Page Down, Home, End, setas de movimentação e Shift.
	// Acrescentada a tecla Tab em 13/03/2007
	if (tecla == 8 || tecla == 37 || tecla == 38 || tecla == 39 || tecla == 40
			|| tecla == 46 || tecla == 36 || tecla == 35 || tecla == 33
			|| tecla == 34 || tecla == 45 || tecla == 16 || tecla == 9
			|| tecla == 13) {
		return;
	}

	// Verifica se a tecla e um digito, sendo que o shift nao pode estar sendo pressionado
	if ((tecla >= 48 && tecla <= 57) && !e.shiftKey) {
		return;
	}

	//  Verifica se a tecla e um digito do teclado numerico
	if (tecla >= 96 && tecla <= 105) {
		return;
	}

	// Permite a digitacao da tecla alt
	if (e.altKey) {
		return;
	}

	// Verifica se foi entrada a sequencia Ctrl+c ou Ctrl+v
	if ((e.ctrlKey && tecla == 67) || (e.ctrlKey && tecla == 86)) {
		controle = true;
		if (browser.isIE) {
			setTimeout("validaCampo(\'" + e.srcElement.id + "\')", 100);
		} else {
			setTimeout("validaCampo(\'" + e.target.id + "\')", 100);
		}
	}
	var caracter = String.fromCharCode(tecla);

	//Verifica se o caractere nao esta entre 0-9, se foi utilizada a sequencia Ctrl+c ou Ctrl+v e se a tecla Shift estava pressionada
	//Se verdadeiro, nao permite a digitacao do caractere.
	if (((("0123456789".indexOf(caracter) == -1) && !controle)) || e.shiftKey) {
		if (window.event) { //IE       
			window.event.returnValue = null;
		} else { //Firefox    
			e.preventDefault();
			return false;
		}
	} else
		return;
}

function formataCnpj(campo, e){
	if(document.all) { //it's IE 
	   var car = window.event.keyCode;	
	} else {//se for Mozilla 
	   var car = e.which;
	}
	if (car == 8) {
		return true;
	} else {
		if (car > 31 && (car < 48 || car > 57)) {
			return false;
		}
		
		switch(campo.value.length) {
			case 2:
				campo.value+='.';
				break;
			case 6:
				campo.value+='.';
				break;
			case 10:
				campo.value+='/';
				break;
			case 15:
				campo.value+='-';
				break;
		}
	}
	return true;
}

function confirmarExclusao(){
	if(confirm('Deseja realmente remover essa aplicação?')){
		return true;
	} else {
		return false;
	}
}

function confirmarExclusaoPerfil(){
	if(confirm('Deseja realmente remover esse perfil?')){
		return true;
	} else {
		return false;
	}
}

function confirmarAlteracao(){
	var novoNomePerfil = document.getElementById('formCadPerfil:nomeId').value;
	if(confirm('Deseja realmente renomear esse perfil para '+novoNomePerfil+' ?')){
		return true;
	} else {
		return false;
	}
}

function confirmarExclusaoUsuario(){
	if(confirm('Deseja realmente remover esse usuário?')){
		return true;
	} else {
		return false;
	}
}

function confirmarModificarSenha(){
	if(confirm('Essa ação impedirá seu acesso ao sistema até cadastrar uma nova senha. Prosseguir?')){
		return true;
	} else {
		return false;
	}
}


function confirmarExclusao(){
	if(confirm('Deseja realmente excluir?')){
		return true;
	} else {
		return false;
	}
}

function confirmaCancelamento(){
	if(confirm('Deseja realmente cancelar o Leilão?')){
		return true;
	} else {
		return false;
	}
}

function validarDatas(campo,id){
	if ( campo.value != "" ){
		var data = campo.value;	
		var er = RegExp("(0[1-9]|[012][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
		var erro = true;
		if(er.test(data)){
			var barras = data.split("/");
			var dia = barras[0];
			var mes = barras[1];
			var ano = barras[2];
			var d = new Date(ano, mes-1, dia);
			if(dia != d.getDate()){
				erro = false;
			}else if(mes != (d.getMonth() + 1)){
				erro = false;
			}else if(ano != d.getFullYear()){
				erro = false;
			}else{
				return true;
			}
		}else{
			erro = false;
		}
	}
	if ( erro == false) {
		alert("Data incorreta!");
		campo.focus();
		return true;
	}
}